package com.lxy.exportword.util;

import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.RowRenderData;
import com.deepoove.poi.data.Rows;
import com.deepoove.poi.data.TableRenderData;
import com.deepoove.poi.policy.DynamicTableRenderPolicy;
import com.deepoove.poi.policy.TableRenderPolicy;
import com.lxy.exportword.entity.shunan.ShuNanGasTrunkLine;
import com.sun.scenario.effect.GaussianShadow;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;

/**
 * 蜀南集输气干线动态表格渲染策略
 *
 * @author LiuXiaoYu
 */
public class DetailTablePolicy extends DynamicTableRenderPolicy {


    /**
     * 集输气干线文字数据所在行数
     */
    int gasCharacterPos = 1;
    /**
     * 集输气干线图片数据所在行数
     */
    int gasPicturePos = 2;


    @Override
    public void render(XWPFTable table, Object data) throws Exception {
//        if (null == data) {
//            return;
//        }
//        XWPFTableRow row = table.getRow(2);
//        TableRenderData
//        //收集集输气干线;的文字数据
//        List<RowRenderData> gasCharacterData = new ArrayList<>();
//        //得到集输气干线的所有数据
//        List<ShuNanGasTrunkLine> shuNanGasTrunkLineList = (List<ShuNanGasTrunkLine>) data;
//        List<RowRenderData> pictureList=new ArrayList<>();
//        IntStream.range(0, pictureList.size()).forEach(i -> {
//            Rows.of()
//        })
//        //收集集输气干线的图片数据 key->属于哪一行文字数据下面 value->图片集合
//        Map<Integer, List<PictureRenderData>> gasPictureData = new HashMap<>();
//
//        //因为是头插所以需要从尾部收集文字数据及图片数据
//        IntStream.range(0, shuNanGasTrunkLineList.size()).forEach(i -> {
//            RowRenderData rowRenderData = Rows.of(shuNanGasTrunkLineList.get(i).getSerialNumber()
//                    , shuNanGasTrunkLineList.get(i).getPipelineNumber()
//                    , shuNanGasTrunkLineList.get(i).getPipelineName(), shuNanGasTrunkLineList.get(i).getKilometers(), shuNanGasTrunkLineList.get(i).getDescription()).create();
//            gasCharacterData.add(rowRenderData);
//            gasPictureData.put(i, shuNanGasTrunkLineList.get(i).getGasPictures());
//        });
//
//        //头插 所以从尾部开始遍历
//        for (int i = gasCharacterData.size() - 1; i >= 0; i--) {
//            //创建一行文字数据
//            XWPFTableRow insertNewTableRow = table.insertNewTableRow(gasCharacterPos);
//            //固定只有5列 所以创建5个单元格
//            for (int k = 0; k < 5; k++) {
//                insertNewTableRow.createCell();
//            }
//            //根据该行拥有的图片数量再次创建行数
//            for (int j = 0; j < gasPictureData.get(i).size(); j++) {
//                //图片先后顺序无所谓
//                table.insertNewTableRow(gasPicturePos);
//            }
//            //TODO 不太会
//            TableRenderPolicy.Helper.renderRow(table.getRow(gasCharacterPos), gasCharacterData.get(i));
//            List<PictureRenderData> pictureRenderData = gasPictureData.get(i);
//            for (PictureRenderData renderData:pictureRenderData){
//                RowRenderData rowRenderData=new RowRenderData();
//                TableRenderData tableRenderData = new TableRenderData();
//                tableRenderData.addRow()
//                TableRenderPolicy.Helper.renderRow(table.getRow(gasPicturePos), renderData);
//             }
//    }
    //

//    table.removeRow(goodsStartRow);
//      for (int i = 0; i < goods.size(); i++) {
//        XWPFTableRow insertNewTableRow = table.insertNewTableRow(goodsStartRow);
//        for (int j = 0; j < 7; j++) insertNewTableRow.createCell();
//        TableRenderPolicy.Helper.renderRow(table.getRow(goodsStartRow), goods.get(i));
//      }
//    }


//    DetailData detailData = (DetailData) data;
//
//    // 人工费
//    List<RowRenderData> labors = detailData.getLabors();
//    if (null != labors) {
//      table.removeRow(laborsStartRow);
//      // 循环插入行
//      for (int i = 0; i < labors.size(); i++) {
//        XWPFTableRow insertNewTableRow = table.insertNewTableRow(laborsStartRow);
//        for (int j = 0; j < 7; j++) insertNewTableRow.createCell();
//
//        // 合并单元格
//        TableTools.mergeCellsHorizonal(table, laborsStartRow, 0, 3);
//        // 单行渲染
//        TableRenderPolicy.Helper.renderRow(table.getRow(laborsStartRow), labors.get(i));
//      }
//    }

    // 货物
//    List<RowRenderData> goods = detailData.getGoods();
//    if (null != goods) {
//      table.removeRow(goodsStartRow);
//      for (int i = 0; i < goods.size(); i++) {
//        XWPFTableRow insertNewTableRow = table.insertNewTableRow(goodsStartRow);
//        for (int j = 0; j < 7; j++) insertNewTableRow.createCell();
//        TableRenderPolicy.Helper.renderRow(table.getRow(goodsStartRow), goods.get(i));
//      }
//    }
}
}